package com.ygqh.baby.po;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

/**
 * @author Ss
 */
public class YgWholesalerPrebillRecordExample {
	protected String orderByClause;

	protected boolean distinct;

	protected List<Criteria> oredCriteria;

	public YgWholesalerPrebillRecordExample() {
		oredCriteria = new ArrayList<Criteria>();
	}

	public void setOrderByClause(String orderByClause) {
		this.orderByClause = orderByClause;
	}

	public String getOrderByClause() {
		return orderByClause;
	}

	public void setDistinct(boolean distinct) {
		this.distinct = distinct;
	}

	public boolean isDistinct() {
		return distinct;
	}

	public List<Criteria> getOredCriteria() {
		return oredCriteria;
	}

	public void or(Criteria criteria) {
		oredCriteria.add(criteria);
	}

	public Criteria or() {
		Criteria criteria = createCriteriaInternal();
		oredCriteria.add(criteria);
		return criteria;
	}

	public Criteria createCriteria() {
		Criteria criteria = createCriteriaInternal();
		if (oredCriteria.size() == 0) {
			oredCriteria.add(criteria);
		}
		return criteria;
	}

	protected Criteria createCriteriaInternal() {
		Criteria criteria = new Criteria();
		return criteria;
	}

	public void clear() {
		oredCriteria.clear();
		orderByClause = null;
		distinct = false;
	}

	protected abstract static class GeneratedCriteria {
		protected List<Criterion> criteria;

		protected GeneratedCriteria() {
			super();
			criteria = new ArrayList<Criterion>();
		}

		public boolean isValid() {
			return criteria.size() > 0;
		}

		public List<Criterion> getAllCriteria() {
			return criteria;
		}

		public List<Criterion> getCriteria() {
			return criteria;
		}

		protected void addCriterion(String condition) {
			if (condition == null) {
				throw new RuntimeException("Value for condition cannot be null");
			}
			criteria.add(new Criterion(condition));
		}

		protected void addCriterion(String condition, Object value, String property) {
			if (value == null) {
				throw new RuntimeException("Value for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value));
		}

		protected void addCriterion(String condition, Object value1, Object value2, String property) {
			if (value1 == null || value2 == null) {
				throw new RuntimeException("Between values for " + property + " cannot be null");
			}
			criteria.add(new Criterion(condition, value1, value2));
		}

		protected void addCriterionForJDBCDate(String condition, Date value, String property) {
			if (value == null) {
				throw new RuntimeException("Value for " + property + " cannot be null");
			}
			addCriterion(condition, new java.sql.Date(value.getTime()), property);
		}

		protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
			if (values == null || values.size() == 0) {
				throw new RuntimeException("Value list for " + property + " cannot be null or empty");
			}
			List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
			Iterator<Date> iter = values.iterator();
			while (iter.hasNext()) {
				dateList.add(new java.sql.Date(iter.next().getTime()));
			}
			addCriterion(condition, dateList, property);
		}

		protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
			if (value1 == null || value2 == null) {
				throw new RuntimeException("Between values for " + property + " cannot be null");
			}
			addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
		}

		public Criteria andIdIsNull() {
			addCriterion("id is null");
			return (Criteria) this;
		}

		public Criteria andIdIsNotNull() {
			addCriterion("id is not null");
			return (Criteria) this;
		}

		public Criteria andIdEqualTo(Long value) {
			addCriterion("id =", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotEqualTo(Long value) {
			addCriterion("id <>", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdGreaterThan(Long value) {
			addCriterion("id >", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdGreaterThanOrEqualTo(Long value) {
			addCriterion("id >=", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdLessThan(Long value) {
			addCriterion("id <", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdLessThanOrEqualTo(Long value) {
			addCriterion("id <=", value, "id");
			return (Criteria) this;
		}

		public Criteria andIdIn(List<Long> values) {
			addCriterion("id in", values, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotIn(List<Long> values) {
			addCriterion("id not in", values, "id");
			return (Criteria) this;
		}

		public Criteria andIdBetween(Long value1, Long value2) {
			addCriterion("id between", value1, value2, "id");
			return (Criteria) this;
		}

		public Criteria andIdNotBetween(Long value1, Long value2) {
			addCriterion("id not between", value1, value2, "id");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdIsNull() {
			addCriterion("wholesaler_id is null");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdIsNotNull() {
			addCriterion("wholesaler_id is not null");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdEqualTo(Long value) {
			addCriterion("wholesaler_id =", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdNotEqualTo(Long value) {
			addCriterion("wholesaler_id <>", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdGreaterThan(Long value) {
			addCriterion("wholesaler_id >", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdGreaterThanOrEqualTo(Long value) {
			addCriterion("wholesaler_id >=", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdLessThan(Long value) {
			addCriterion("wholesaler_id <", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdLessThanOrEqualTo(Long value) {
			addCriterion("wholesaler_id <=", value, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdIn(List<Long> values) {
			addCriterion("wholesaler_id in", values, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdNotIn(List<Long> values) {
			addCriterion("wholesaler_id not in", values, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdBetween(Long value1, Long value2) {
			addCriterion("wholesaler_id between", value1, value2, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerIdNotBetween(Long value1, Long value2) {
			addCriterion("wholesaler_id not between", value1, value2, "wholesalerId");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameIsNull() {
			addCriterion("wholesaler_name is null");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameIsNotNull() {
			addCriterion("wholesaler_name is not null");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameEqualTo(String value) {
			addCriterion("wholesaler_name =", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotEqualTo(String value) {
			addCriterion("wholesaler_name <>", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameGreaterThan(String value) {
			addCriterion("wholesaler_name >", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameGreaterThanOrEqualTo(String value) {
			addCriterion("wholesaler_name >=", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameLessThan(String value) {
			addCriterion("wholesaler_name <", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameLessThanOrEqualTo(String value) {
			addCriterion("wholesaler_name <=", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameLike(String value) {
			addCriterion("wholesaler_name like", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotLike(String value) {
			addCriterion("wholesaler_name not like", value, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameIn(List<String> values) {
			addCriterion("wholesaler_name in", values, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotIn(List<String> values) {
			addCriterion("wholesaler_name not in", values, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameBetween(String value1, String value2) {
			addCriterion("wholesaler_name between", value1, value2, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andWholesalerNameNotBetween(String value1, String value2) {
			addCriterion("wholesaler_name not between", value1, value2, "wholesalerName");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeIsNull() {
			addCriterion("prebill_code is null");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeIsNotNull() {
			addCriterion("prebill_code is not null");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeEqualTo(String value) {
			addCriterion("prebill_code =", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeNotEqualTo(String value) {
			addCriterion("prebill_code <>", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeGreaterThan(String value) {
			addCriterion("prebill_code >", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeGreaterThanOrEqualTo(String value) {
			addCriterion("prebill_code >=", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeLessThan(String value) {
			addCriterion("prebill_code <", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeLessThanOrEqualTo(String value) {
			addCriterion("prebill_code <=", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeLike(String value) {
			addCriterion("prebill_code like", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeNotLike(String value) {
			addCriterion("prebill_code not like", value, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeIn(List<String> values) {
			addCriterion("prebill_code in", values, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeNotIn(List<String> values) {
			addCriterion("prebill_code not in", values, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeBetween(String value1, String value2) {
			addCriterion("prebill_code between", value1, value2, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andPrebillCodeNotBetween(String value1, String value2) {
			addCriterion("prebill_code not between", value1, value2, "prebillCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeIsNull() {
			addCriterion("bill_code is null");
			return (Criteria) this;
		}

		public Criteria andBillCodeIsNotNull() {
			addCriterion("bill_code is not null");
			return (Criteria) this;
		}

		public Criteria andBillCodeEqualTo(String value) {
			addCriterion("bill_code =", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeNotEqualTo(String value) {
			addCriterion("bill_code <>", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeGreaterThan(String value) {
			addCriterion("bill_code >", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeGreaterThanOrEqualTo(String value) {
			addCriterion("bill_code >=", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeLessThan(String value) {
			addCriterion("bill_code <", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeLessThanOrEqualTo(String value) {
			addCriterion("bill_code <=", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeLike(String value) {
			addCriterion("bill_code like", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeNotLike(String value) {
			addCriterion("bill_code not like", value, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeIn(List<String> values) {
			addCriterion("bill_code in", values, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeNotIn(List<String> values) {
			addCriterion("bill_code not in", values, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeBetween(String value1, String value2) {
			addCriterion("bill_code between", value1, value2, "billCode");
			return (Criteria) this;
		}

		public Criteria andBillCodeNotBetween(String value1, String value2) {
			addCriterion("bill_code not between", value1, value2, "billCode");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceIsNull() {
			addCriterion("prebill_price is null");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceIsNotNull() {
			addCriterion("prebill_price is not null");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceEqualTo(BigDecimal value) {
			addCriterion("prebill_price =", value, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceNotEqualTo(BigDecimal value) {
			addCriterion("prebill_price <>", value, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceGreaterThan(BigDecimal value) {
			addCriterion("prebill_price >", value, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceGreaterThanOrEqualTo(BigDecimal value) {
			addCriterion("prebill_price >=", value, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceLessThan(BigDecimal value) {
			addCriterion("prebill_price <", value, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceLessThanOrEqualTo(BigDecimal value) {
			addCriterion("prebill_price <=", value, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceIn(List<BigDecimal> values) {
			addCriterion("prebill_price in", values, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceNotIn(List<BigDecimal> values) {
			addCriterion("prebill_price not in", values, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceBetween(BigDecimal value1, BigDecimal value2) {
			addCriterion("prebill_price between", value1, value2, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andPrebillPriceNotBetween(BigDecimal value1, BigDecimal value2) {
			addCriterion("prebill_price not between", value1, value2, "prebillPrice");
			return (Criteria) this;
		}

		public Criteria andRecordTypeIsNull() {
			addCriterion("record_type is null");
			return (Criteria) this;
		}

		public Criteria andRecordTypeIsNotNull() {
			addCriterion("record_type is not null");
			return (Criteria) this;
		}

		public Criteria andRecordTypeEqualTo(String value) {
			addCriterion("record_type =", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeNotEqualTo(String value) {
			addCriterion("record_type <>", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeGreaterThan(String value) {
			addCriterion("record_type >", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeGreaterThanOrEqualTo(String value) {
			addCriterion("record_type >=", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeLessThan(String value) {
			addCriterion("record_type <", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeLessThanOrEqualTo(String value) {
			addCriterion("record_type <=", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeLike(String value) {
			addCriterion("record_type like", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeNotLike(String value) {
			addCriterion("record_type not like", value, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeIn(List<String> values) {
			addCriterion("record_type in", values, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeNotIn(List<String> values) {
			addCriterion("record_type not in", values, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeBetween(String value1, String value2) {
			addCriterion("record_type between", value1, value2, "recordType");
			return (Criteria) this;
		}

		public Criteria andRecordTypeNotBetween(String value1, String value2) {
			addCriterion("record_type not between", value1, value2, "recordType");
			return (Criteria) this;
		}

		public Criteria andStartDateIsNull() {
			addCriterion("start_date is null");
			return (Criteria) this;
		}

		public Criteria andStartDateIsNotNull() {
			addCriterion("start_date is not null");
			return (Criteria) this;
		}

		public Criteria andStartDateEqualTo(Date value) {
			addCriterionForJDBCDate("start_date =", value, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateNotEqualTo(Date value) {
			addCriterionForJDBCDate("start_date <>", value, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateGreaterThan(Date value) {
			addCriterionForJDBCDate("start_date >", value, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateGreaterThanOrEqualTo(Date value) {
			addCriterionForJDBCDate("start_date >=", value, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateLessThan(Date value) {
			addCriterionForJDBCDate("start_date <", value, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateLessThanOrEqualTo(Date value) {
			addCriterionForJDBCDate("start_date <=", value, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateIn(List<Date> values) {
			addCriterionForJDBCDate("start_date in", values, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateNotIn(List<Date> values) {
			addCriterionForJDBCDate("start_date not in", values, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateBetween(Date value1, Date value2) {
			addCriterionForJDBCDate("start_date between", value1, value2, "startDate");
			return (Criteria) this;
		}

		public Criteria andStartDateNotBetween(Date value1, Date value2) {
			addCriterionForJDBCDate("start_date not between", value1, value2, "startDate");
			return (Criteria) this;
		}

		public Criteria andEndDateIsNull() {
			addCriterion("end_date is null");
			return (Criteria) this;
		}

		public Criteria andEndDateIsNotNull() {
			addCriterion("end_date is not null");
			return (Criteria) this;
		}

		public Criteria andEndDateEqualTo(Date value) {
			addCriterionForJDBCDate("end_date =", value, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateNotEqualTo(Date value) {
			addCriterionForJDBCDate("end_date <>", value, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateGreaterThan(Date value) {
			addCriterionForJDBCDate("end_date >", value, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateGreaterThanOrEqualTo(Date value) {
			addCriterionForJDBCDate("end_date >=", value, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateLessThan(Date value) {
			addCriterionForJDBCDate("end_date <", value, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateLessThanOrEqualTo(Date value) {
			addCriterionForJDBCDate("end_date <=", value, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateIn(List<Date> values) {
			addCriterionForJDBCDate("end_date in", values, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateNotIn(List<Date> values) {
			addCriterionForJDBCDate("end_date not in", values, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateBetween(Date value1, Date value2) {
			addCriterionForJDBCDate("end_date between", value1, value2, "endDate");
			return (Criteria) this;
		}

		public Criteria andEndDateNotBetween(Date value1, Date value2) {
			addCriterionForJDBCDate("end_date not between", value1, value2, "endDate");
			return (Criteria) this;
		}

		public Criteria andCommitStatusIsNull() {
			addCriterion("commit_status is null");
			return (Criteria) this;
		}

		public Criteria andCommitStatusIsNotNull() {
			addCriterion("commit_status is not null");
			return (Criteria) this;
		}

		public Criteria andCommitStatusEqualTo(String value) {
			addCriterion("commit_status =", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusNotEqualTo(String value) {
			addCriterion("commit_status <>", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusGreaterThan(String value) {
			addCriterion("commit_status >", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusGreaterThanOrEqualTo(String value) {
			addCriterion("commit_status >=", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusLessThan(String value) {
			addCriterion("commit_status <", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusLessThanOrEqualTo(String value) {
			addCriterion("commit_status <=", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusLike(String value) {
			addCriterion("commit_status like", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusNotLike(String value) {
			addCriterion("commit_status not like", value, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusIn(List<String> values) {
			addCriterion("commit_status in", values, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusNotIn(List<String> values) {
			addCriterion("commit_status not in", values, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusBetween(String value1, String value2) {
			addCriterion("commit_status between", value1, value2, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andCommitStatusNotBetween(String value1, String value2) {
			addCriterion("commit_status not between", value1, value2, "commitStatus");
			return (Criteria) this;
		}

		public Criteria andRemarkIsNull() {
			addCriterion("remark is null");
			return (Criteria) this;
		}

		public Criteria andRemarkIsNotNull() {
			addCriterion("remark is not null");
			return (Criteria) this;
		}

		public Criteria andRemarkEqualTo(String value) {
			addCriterion("remark =", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkNotEqualTo(String value) {
			addCriterion("remark <>", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkGreaterThan(String value) {
			addCriterion("remark >", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkGreaterThanOrEqualTo(String value) {
			addCriterion("remark >=", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkLessThan(String value) {
			addCriterion("remark <", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkLessThanOrEqualTo(String value) {
			addCriterion("remark <=", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkLike(String value) {
			addCriterion("remark like", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkNotLike(String value) {
			addCriterion("remark not like", value, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkIn(List<String> values) {
			addCriterion("remark in", values, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkNotIn(List<String> values) {
			addCriterion("remark not in", values, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkBetween(String value1, String value2) {
			addCriterion("remark between", value1, value2, "remark");
			return (Criteria) this;
		}

		public Criteria andRemarkNotBetween(String value1, String value2) {
			addCriterion("remark not between", value1, value2, "remark");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIsNull() {
			addCriterion("create_time is null");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIsNotNull() {
			addCriterion("create_time is not null");
			return (Criteria) this;
		}

		public Criteria andCreateTimeEqualTo(Date value) {
			addCriterion("create_time =", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotEqualTo(Date value) {
			addCriterion("create_time <>", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeGreaterThan(Date value) {
			addCriterion("create_time >", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
			addCriterion("create_time >=", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeLessThan(Date value) {
			addCriterion("create_time <", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
			addCriterion("create_time <=", value, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeIn(List<Date> values) {
			addCriterion("create_time in", values, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotIn(List<Date> values) {
			addCriterion("create_time not in", values, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeBetween(Date value1, Date value2) {
			addCriterion("create_time between", value1, value2, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
			addCriterion("create_time not between", value1, value2, "createTime");
			return (Criteria) this;
		}

		public Criteria andCreateByIsNull() {
			addCriterion("create_by is null");
			return (Criteria) this;
		}

		public Criteria andCreateByIsNotNull() {
			addCriterion("create_by is not null");
			return (Criteria) this;
		}

		public Criteria andCreateByEqualTo(String value) {
			addCriterion("create_by =", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotEqualTo(String value) {
			addCriterion("create_by <>", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByGreaterThan(String value) {
			addCriterion("create_by >", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByGreaterThanOrEqualTo(String value) {
			addCriterion("create_by >=", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByLessThan(String value) {
			addCriterion("create_by <", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByLessThanOrEqualTo(String value) {
			addCriterion("create_by <=", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByLike(String value) {
			addCriterion("create_by like", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotLike(String value) {
			addCriterion("create_by not like", value, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByIn(List<String> values) {
			addCriterion("create_by in", values, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotIn(List<String> values) {
			addCriterion("create_by not in", values, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByBetween(String value1, String value2) {
			addCriterion("create_by between", value1, value2, "createBy");
			return (Criteria) this;
		}

		public Criteria andCreateByNotBetween(String value1, String value2) {
			addCriterion("create_by not between", value1, value2, "createBy");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIsNull() {
			addCriterion("update_time is null");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIsNotNull() {
			addCriterion("update_time is not null");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeEqualTo(Date value) {
			addCriterion("update_time =", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotEqualTo(Date value) {
			addCriterion("update_time <>", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeGreaterThan(Date value) {
			addCriterion("update_time >", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
			addCriterion("update_time >=", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeLessThan(Date value) {
			addCriterion("update_time <", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
			addCriterion("update_time <=", value, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeIn(List<Date> values) {
			addCriterion("update_time in", values, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotIn(List<Date> values) {
			addCriterion("update_time not in", values, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeBetween(Date value1, Date value2) {
			addCriterion("update_time between", value1, value2, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
			addCriterion("update_time not between", value1, value2, "updateTime");
			return (Criteria) this;
		}

		public Criteria andUpdateByIsNull() {
			addCriterion("update_by is null");
			return (Criteria) this;
		}

		public Criteria andUpdateByIsNotNull() {
			addCriterion("update_by is not null");
			return (Criteria) this;
		}

		public Criteria andUpdateByEqualTo(String value) {
			addCriterion("update_by =", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotEqualTo(String value) {
			addCriterion("update_by <>", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByGreaterThan(String value) {
			addCriterion("update_by >", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
			addCriterion("update_by >=", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByLessThan(String value) {
			addCriterion("update_by <", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByLessThanOrEqualTo(String value) {
			addCriterion("update_by <=", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByLike(String value) {
			addCriterion("update_by like", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotLike(String value) {
			addCriterion("update_by not like", value, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByIn(List<String> values) {
			addCriterion("update_by in", values, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotIn(List<String> values) {
			addCriterion("update_by not in", values, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByBetween(String value1, String value2) {
			addCriterion("update_by between", value1, value2, "updateBy");
			return (Criteria) this;
		}

		public Criteria andUpdateByNotBetween(String value1, String value2) {
			addCriterion("update_by not between", value1, value2, "updateBy");
			return (Criteria) this;
		}

		public Criteria andStatusIsNull() {
			addCriterion("status is null");
			return (Criteria) this;
		}

		public Criteria andStatusIsNotNull() {
			addCriterion("status is not null");
			return (Criteria) this;
		}

		public Criteria andStatusEqualTo(String value) {
			addCriterion("status =", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotEqualTo(String value) {
			addCriterion("status <>", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusGreaterThan(String value) {
			addCriterion("status >", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusGreaterThanOrEqualTo(String value) {
			addCriterion("status >=", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusLessThan(String value) {
			addCriterion("status <", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusLessThanOrEqualTo(String value) {
			addCriterion("status <=", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusLike(String value) {
			addCriterion("status like", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotLike(String value) {
			addCriterion("status not like", value, "status");
			return (Criteria) this;
		}

		public Criteria andStatusIn(List<String> values) {
			addCriterion("status in", values, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotIn(List<String> values) {
			addCriterion("status not in", values, "status");
			return (Criteria) this;
		}

		public Criteria andStatusBetween(String value1, String value2) {
			addCriterion("status between", value1, value2, "status");
			return (Criteria) this;
		}

		public Criteria andStatusNotBetween(String value1, String value2) {
			addCriterion("status not between", value1, value2, "status");
			return (Criteria) this;
		}
	}

	public static class Criteria extends GeneratedCriteria {

		protected Criteria() {
			super();
		}
	}

	public static class Criterion {
		private String condition;

		private Object value;

		private Object secondValue;

		private boolean noValue;

		private boolean singleValue;

		private boolean betweenValue;

		private boolean listValue;

		private String typeHandler;

		public String getCondition() {
			return condition;
		}

		public Object getValue() {
			return value;
		}

		public Object getSecondValue() {
			return secondValue;
		}

		public boolean isNoValue() {
			return noValue;
		}

		public boolean isSingleValue() {
			return singleValue;
		}

		public boolean isBetweenValue() {
			return betweenValue;
		}

		public boolean isListValue() {
			return listValue;
		}

		public String getTypeHandler() {
			return typeHandler;
		}

		protected Criterion(String condition) {
			super();
			this.condition = condition;
			this.typeHandler = null;
			this.noValue = true;
		}

		protected Criterion(String condition, Object value, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.typeHandler = typeHandler;
			if (value instanceof List<?>) {
				this.listValue = true;
			} else {
				this.singleValue = true;
			}
		}

		protected Criterion(String condition, Object value) {
			this(condition, value, null);
		}

		protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
			super();
			this.condition = condition;
			this.value = value;
			this.secondValue = secondValue;
			this.typeHandler = typeHandler;
			this.betweenValue = true;
		}

		protected Criterion(String condition, Object value, Object secondValue) {
			this(condition, value, secondValue, null);
		}
	}
}